
package Modele;

import java.util.*;

import DAO.DAOReparation;

/** Objet définissant les agents de maintenance */
public class AgentMaintenance {
	/** Identifiant de l'agent de maintenance */
	private int idAgent;
	/** Nom de l'agent de maintenance */
	private String nom;
	/** Prenom de l'agent de maintenance */
	private String prenom;
	/** Date de naissance de l'agent de maintenance */
	private Date dateDeNaissance;
	/** Lieu de naissance de l'agent de maintenance */
	private String lieuDeNaissance;
	/** Flag d'activité */
	private boolean estActif;

	/**
	 * Instancie un agent de maintenance
	 * 
	 * @param nom
	 *            Nom de l'agent de maintenance
	 * @param prenom
	 *            Prénom de l'agent de maintenance
	 * @param dateDeNaissance
	 *            Date de naissance de l'agent de maintenance
	 * @param lieuDeNaissance
	 *            Lieu de naissance de l'agent de maintenance
	 * @param estActif
	 *            Le flag d'activité
	 */
	public AgentMaintenance(String nom, String prenom, Date dateDeNaissance,
			String lieuDeNaissance, boolean estActif) {

		this.nom = nom;
		this.prenom = prenom;
		this.dateDeNaissance = dateDeNaissance;
		this.lieuDeNaissance = lieuDeNaissance;
		this.estActif = estActif;
	}

	/**
	 * Instancie un agent de maintenance
	 * 
	 * @param idAgentMaintenance
	 *            Identifiant de l'agent de maintenance
	 * @param nom
	 *            Nom de l'agent de maintenance
	 * @param prenom
	 *            Prénom de l'agent de maintenance
	 * @param dateDeNaissance
	 *            Date de naissance de l'agent de maintenance
	 * @param lieuDeNaissance
	 *            Lieu de naissance de l'agent de maintenance
	 * @param estActif
	 *            Le flag d'activité
	 */
	public AgentMaintenance(int idAgentMaintenance, String nom, String prenom,
			Date dateDeNaissance, String lieuDeNaissance, boolean estActif) {

		this.idAgent = idAgentMaintenance;
		this.nom = nom;
		this.prenom = prenom;
		this.dateDeNaissance = dateDeNaissance;
		this.lieuDeNaissance = lieuDeNaissance;
		this.estActif = estActif;
	}

	/**
	 * Renvoie l'identifiant de l'agent de maintenance
	 * 
	 * @return L'identifiant
	 */
	public int getIdAgent() {
		return idAgent;
	}

	/**
	 * Renvoie le nom de l'agent de maintenance
	 * 
	 * @return Le nom
	 */
	public String getNom() {
		return nom;
	}

	/**
	 * Assigne le nom de l'agent de maintenance
	 * 
	 * @param newNom
	 *            Le nouveau nom
	 */
	public void setNom(String newNom) {
		nom = newNom;
	}

	/**
	 * Renvoie le prénom de l'agent de maintenance
	 * 
	 * @return Le prénom
	 */
	public String getPrenom() {
		return prenom;
	}

	/**
	 * Assigne le prénom de l'agent de maintenance
	 * 
	 * @param newPrenom
	 *            Le nouveau prénom
	 */
	public void setPrenom(String newPrenom) {
		prenom = newPrenom;
	}

	/**
	 * Renvoie la date de naissance de l'agent de maintenance
	 * 
	 * @return La date de naissance
	 */
	public Date getDateDeNaissance() {
		return dateDeNaissance;
	}

	/**
	 * Assigne la date de naissance de l'agent de maintenance
	 * 
	 * @param newDateDeNaissance
	 *            La nouvelle date de naissance
	 */
	public void setDateDeNaissance(Date newDateDeNaissance) {
		dateDeNaissance = newDateDeNaissance;
	}

	/**
	 * Renvoie le lieu de naissance de l'agent de maintenance
	 * 
	 * @return Le lieu de naissance
	 */
	public String getLieuDeNaissance() {
		return lieuDeNaissance;
	}

	/**
	 * Assigne le lieu de naissance de l'agent de maintenance
	 * 
	 * @param newLieuDeNaissance
	 *            Le nouveau lieu de naissance
	 */
	public void setLieuDeNaissance(String newLieuDeNaissance) {
		lieuDeNaissance = newLieuDeNaissance;
	}

	/**
	 * Renvoie une liste de réparations que l'agent a effectué
	 * 
	 * @return La liste de réparations
	 */
	public ArrayList<Reparation> getReparations() {
		ArrayList<Reparation> reparationsDeLagent = new ArrayList<Reparation>();

		for (Reparation rep : DAOReparation.getAllReparation()) {
			if (rep.getIdAgentMaintenance() == getIdAgent())
				reparationsDeLagent.add(rep);
		}

		return reparationsDeLagent;
	}

	/**
	 * Renvoie le flag d'activité
	 * 
	 * @return Le flag d'activité
	 */
	public boolean getEstActif() {
		return estActif;
	}

	/**
	 * Assigne le flag d'activité
	 * 
	 * @param newEstActif
	 */
	public void setEstActif(boolean newEstActif) {
		estActif = newEstActif;
	}

}